<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:saxon="http://icl.com/saxon"
                extension-element-prefixes="saxon"
                version="3.0">
<!--
<xsl:output omit-xml-declaration="no" indent="yes" doctype-system="eagle.dtd" />
-->

<xsl:output method="text"/>

<xsl:strip-space elements="*"/>

<xsl:param name="prefix">ECAP</xsl:param>
<xsl:variable name="counter" select="0" saxon:assignable="yes"/>

<xsl:template match="node()|@*">
   <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
   </xsl:copy>
</xsl:template>


<!-- ================================================================
 |
 + ================================================================== -->
<xsl:template match="/">
   <xsl:call-template name="root.messages"/>
   <xsl:apply-templates/>
</xsl:template>

<!-- ================================================================
 |
 + ================================================================== -->
<xsl:template name="root.messages">
   <xsl:message>============================================================</xsl:message>
   <xsl:message> List of all devices in library                             </xsl:message>
   <xsl:message> Library prefix: <xsl:value-of select="$prefix" />           </xsl:message>
   <xsl:message>                                                            </xsl:message>
   <xsl:message> AUTHOR : martin.sveda@saabgroup.com                        </xsl:message>
   <xsl:message> USING  :<xsl:value-of select="system-property('xsl:vendor')"/></xsl:message>
   <xsl:message>============================================================</xsl:message>
   <xsl:message>                                                            </xsl:message>
</xsl:template>

<xsl:key name="kTechnology" match="technology" use="@hash"/>

<!--
<xsl:template match="technologies">
   <xsl:apply-templates select="technology[generate-id() = 
                                           generate-id(key('kTechnology', concat(@name, '+', @value, '+', @package))[1])]"/>                                           
</xsl:template>
-->

<!--
<xsl:template match="/devices/device/technologies/technology">
   <xsl:if test="generate-id() != generate-id(key('kTechnology', concat(@name, '+', @value, '+', @package))[1]) ">ooooo</xsl:if>                                           
   <xsl:number value="position(key('kTechnology', concat(@name, '+', @value, '+', @package))[1])" format="000000"/><xsl:text>   </xsl:text>
   <xsl:value-of select="$prefix" />-<xsl:number value="position()" level="any" format="000000"/><xsl:text>   </xsl:text>
   <xsl:value-of select="@package"/><xsl:text>   </xsl:text>
   <xsl:value-of select="@value"/><xsl:text>   </xsl:text>
   <xsl:value-of select="@name"/><xsl:text>   </xsl:text>
   <xsl:text>&#xa;</xsl:text>
</xsl:template>
-->
<xsl:template match="/devices">
   <xsl:for-each select="//technology">
      <xsl:sort select="@hash" />
      <xsl:if test="generate-id() = generate-id(key('kTechnology', @hash)[1]) ">
         <saxon:assign name="counter" select="$counter+1"/>
      </xsl:if>
      <xsl:number value="$counter" format="000000"/><xsl:text>  </xsl:text>
      <xsl:value-of select="@hash"/><xsl:text>&#xa;</xsl:text>
      <!--
      <xsl:variable name="key" select="@hash" />
      <xsl:for-each select="//technology[@hash=$key]">
         <xsl:value-of select="@hash"/><xsl:text>   </xsl:text>
         <xsl:text>&#xa;</xsl:text>              
      </xsl:for-each>
      -->   
   </xsl:for-each>
</xsl:template>


<!--
 *
 * Sablona vypise jen distinctive prvky (u tech co se opakuji je vypsano oooo)
 *   
-->
<!--
<xsl:template match="/devices/device/technologies/technology">
   <xsl:if test="generate-id() != generate-id(key('kTechnology', concat(@name, '+', @value, '+', @package))[1]) ">
   ooo
   </xsl:if>                                           
   <xsl:value-of select="$prefix" />-<xsl:number value="position()" level="any" format="000000"/><xsl:text>   </xsl:text>
   <xsl:value-of select="@package"/><xsl:text>   </xsl:text>
   <xsl:value-of select="@value"/><xsl:text>   </xsl:text>
   <xsl:value-of select="@name"/><xsl:text>   </xsl:text>
   <xsl:text>&#xa;</xsl:text>
</xsl:template>
-->

<!--
      <xsl:variable name="counter" select="position()" />
      <xsl:if test="not(position() != $counter)">
         <xsl:for-each select="technology">
            <xsl:number value="$counter" format="000000"/><xsl:text>   </xsl:text>
            <xsl:value-of select="@package"/><xsl:text>   </xsl:text>
            <xsl:value-of select="@value"/><xsl:text>   </xsl:text>
            <xsl:text>&#xa;</xsl:text>      
         </xsl:for-each>
      </xsl:if>

-->


<!--
<xsl:if test="generate-id() != generate-id(key('kTechnology', concat(@name, '+', @value, '+', @package))[1]) ">ooooo</xsl:if>        
      <xsl:number value="position()" format="000000"/><xsl:text>   </xsl:text>                                   
      <xsl:value-of select="$prefix" /?>-<xsl:number value="position()" level="any" format="000000"/><xsl:text>   </xsl:text>
      <xsl:value-of select="@package"/><xsl:text>   </xsl:text>
      <xsl:value-of select="@value"/><xsl:text>   </xsl:text>
      <xsl:value-of select="@name"/><xsl:text>   </xsl:text>
      <xsl:text>&#xa;</xsl:text>
-->


<!--
<xsl:template match="/devices/device/technologies/technology/attribute[@name='COMPONENT_VALUE']">              
   <xsl:value-of select="@value" />ECAP-<xsl:number count="@value" level="any" format="000000"/>
      <xsl:text>
     </xsl:text>
</xsl:template>
-->


<!--
<xsl:template match="attribute[@name='COMPONENT_VALUE']">
   <xsl:value-of select="@value" />
</xsl:template>
-->


<!-- toto musim dodelat, mozna bude vysledkem hledani takoveho package, ktery se az na posledni znak lisi - retezcove operace-->
<!--
<xsl:template match="/device/technologies/technology/attribute[@name='SAAB']">              
   <xsl:element name="attribute">
      <xsl:attribute name="name">SAAB</xsl:attribute>
      <xsl:attribute name="value"><xsl:value-of select="prefix" />-<xsl:number count="device/@package" level="any" format="000000"/></xsl:attribute>
   </xsl:element>
</xsl:template>
-->
</xsl:stylesheet> 
